The popularity and demand for collaborative and distributed computing environments has increased in the recent years due to the popularity of the internet, networks and portal frameworks. A wide variety of enterprises, ranging from large corporations to small development projects, often have use for such software. For example, employees, developers and other users within an enterprise often work on projects in groups, collaborating with one another as the project progresses. Such groups of users frequently need access to the same resources, materials and information on certain topics. Thus, software designed to allow a group of users on a network to work simultaneously on a project is desirable. Present day solutions typically provide services for communicating (such as email), group document development, scheduling, and tracking. For example, groupware is a form of application software that integrates work on a single project by several concurrent users on separate workstations on a computer network.
One area where these trends have been implemented has been in the context of content frameworks referred to as portals. A portal can be thought of as a gateway or an access point for users to various types of content and other collections of information. One example of a portal server is the WebLogic® Portal product available from BEA Systems Inc. Portals are typically visually represented and often have a portal page for allowing users to navigate the data provided therein. Portals are ideal for implementations of groupware programs since multiple users can be provided a single point of access to a wide variety of information.
There are several available groupware products deployed on portal frameworks and available on the market today. Most of them allow some form of user collaboration in an effort to increase productivity. However, these solutions are often very rigid in their requirements for the data and services they provide. For example, most of such software is geared toward specific enterprises, groups or projects and allow little in terms of customization. What is needed is a more abstract, dynamic and user-friendly approach, one that would provide a more fluid and adaptable system of collaboration between users over a distributed computing environment.